import loadScript from './loadScript';
import ELEMENT from 'element-plus';
import pluginsConfig from './pluginsConfig';

let tinymceObj;
let loadingInstance; // 用于存储加载实例

export default function loadTinymce(cb) {
  const { tinymceUrl } = pluginsConfig;

  if (tinymceObj) {
    cb(tinymceObj);
    return;
  }

  // 显示加载动画
  loadingInstance = ELEMENT.Loading.service({
    fullscreen: true,
    lock: true,
    text: '富文本资源加载中...',
    spinner: 'el-icon-loading',
    background: 'rgba(255, 255, 255, 0.5)'
  });

  // 加载 TinyMCE 脚本
  loadScript(tinymceUrl, () => {
    // 加载完成后关闭加载动画
    if (loadingInstance) {
      loadingInstance.close();
    }

    // 将 tinymce 对象赋值给 tinymceObj
    tinymceObj = tinymce;

    // 调用回调函数，将 tinymce 对象传递给调用者
    cb(tinymceObj);
  });
}

// 提供一个关闭加载动画的方法
export function closeLoading() {
  if (loadingInstance) {
    loadingInstance.close();
  }
}